home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir43
/
med300.zip
/
MEBLOCK.CLA
< prev
next >
Wrap
Text File
|
1994-02-22
|
5KB
|
135 lines
!▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
!█ █
!█ MEBLOCK.CLA █
!█ Block operations █
!█ █
!█ Revision Number: 1 █
!█ Revision Date : 22-Feb-94 █
!█ █
!█ Revision History █
!█ 1 Created █
!█ █
!▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
MEMBER('MEMOEDIT')
!═════════════════════════════════════════════════════════════════════════
! Normalize block begin/end
!═════════════════════════════════════════════════════════════════════════
ME_NormBlock PROCEDURE
isTemp SHORT ! Temp for swap
CODE
IF MED:isBlockBegin > MED:isBlockEnd ! If begin > end
isTemp = MED:isBlockBegin ! Swap begin and end
MED:isBlockBegin = MED:isBlockEnd !
MED:isBlockEnd = isTemp !
. ! Endif
RETURN !
!═════════════════════════════════════════════════════════════════════════
! Begin block marking
!═════════════════════════════════════════════════════════════════════════
ME_MarkOn PROCEDURE
CODE
IF NOT MED:bbBlockMark ! If not in marking mode
MED:isBlockBegin = MED:usPosition ! Set block start
MED:isBlockEnd = MED:usPosition ! Set block end
MED:bbBlockMark = 1 ! Turn marking mode on
MED:bbBlockShow = 1 ! Display marked block
. ! Endif
RETURN !
!═════════════════════════════════════════════════════════════════════════
! End block marking
!═════════════════════════════════════════════════════════════════════════
ME_MarkOff PROCEDURE
CODE
IF MED:bbBlockMark ! If in marking mode
MED:bbBlockMark = 0 ! Turn marking mode off
. ! Endif
RETURN !
!═════════════════════════════════════════════════════════════════════════
! Copy marked block to clipboard
!═════════════════════════════════════════════════════════════════════════
ME_Copy2Clip PROCEDURE
! Locals:
usLine USHORT ! Line index
usStart USHORT ! Range start
usEnd USHORT ! Range end
CODE
IF MED:bbBlockShow ! If block marked
FREE(qClipboard) ! Free clipboard
ME_NormBlock() ! Normalize block
usLine = ME_LineIndex(MED:isBlockBegin) !
usStart = MED:isBlockBegin !
usEnd = ME_LineEnd(usLine) !
LOOP WHILE usEnd < MED:isBlockEnd ! Loop until done
ME_GetBlock(qClipBoard, usStart, (usEnd-usStart)+1)
ADD(qClipBoard) ! Add line to clipbaord
usLine += 1 !
usStart = ME_LineStart(usLine) !
usEnd = ME_LineEnd(usLine) !
. ! End loop
ME_GetBlock(qClipBoard, usStart, (MED:isBlockEnd-usStart)+1)
ADD(qClipBoard) ! Take care of last line
. ! Endif
ME_MarkOff() ! Turn off block marking
MED:bbBlockShow = 0 !
ME_SetPage() !
RETURN
!═════════════════════════════════════════════════════════════════════════
! Cut marked block to clipboard
!═════════════════════════════════════════════════════════════════════════
ME_Cut2Clip PROCEDURE
CODE
IF NOT MED:bbBlockShow THEN RETURN. ! Quit if no block marked
ME_NormBlock() ! Normalize block
ME_Copy2Clip() ! Copy block to clipboard
ME_DelTxt(MED:isBlockBegin, (MED:isBlockEnd-MED:isBlockBegin)+1)
ME_MarkOff() ! Reset block
MED:bbHasChanged = 1 ! Set modified flag
ME_ReformDoc() !
MED:usPosition = MED:isBlockBegin ! Adjust current position
RETURN
!═════════════════════════════════════════════════════════════════════════
! Paste clipboard contents at current location
!═════════════════════════════════════════════════════════════════════════
ME_PasteClip PROCEDURE
! Locals:
usIndex USHORT ! Clipboard index
usPos USHORT ! Insertion position
usLen USHORT ! Insertion length
CODE
usPos = MED:usPosition ! Set to current position
LOOP usIndex = 1 TO RECORDS(qClipBoard) ! Loop for lines in clipbaord
GET(qClipBoard, usIndex) !
usLen = LEN(CLIP(qClipboard)) !
ME_InsTxt(usPos, usLen, qClipBoard) !
usPos += usLen ! Paste text
IF SUB(qClipBoard, usLen, 1) <> CHR(eHRT) !
ME_InsTxt(usPos, 1, ' ') ! Add space if needed
usPos += 1 !
. . ! End loop
ME_ReformDoc() ! Reformat document
RETURN !